#ifndef DATOCUBA_H_
#define DATOCUBA_H_

#include <string>

#include "Dato.h"
#include "Clave.h"
#include "includes.h"

namespace Toolkit
{

class DatoCuba: public Dato
{
public:
	DatoCuba(unsigned long int posicionBloque, const Clave &clave,
			 const TipoSerializacion &tSerializacion);
	virtual ~DatoCuba();

	virtual void serializar(stringstream& stream) const;
	virtual void hidratar(stringstream& stream);

	unsigned long int getPosicionBloque() const;
	string getClaveHasheada() const;

    virtual Dato* clonar() const;

private:
    unsigned long int posicionBloque;
    string claveHasheada;
    TipoSerializacion tSerializacion;

	/*
     * Constructor necesario para clonar la clave.
     */
    DatoCuba(unsigned long int posicionBloque, string claveHasheada,
    		 const TipoSerializacion &tSerializacion);

};

}

#endif /* DATOCUBA_H_ */
